package com.ugoodtech.mdcc.client.service;

import com.ugoodtech.mdcc.client.dto.JsonResponse;
import com.ugoodtech.mdcc.core.domain.Station;
import com.ugoodtech.mdcc.core.domain.StationRegularServiceReport;
import com.ugoodtech.mdcc.core.domain.TechColorAuditingReports.TechColorAuditingReports;
import com.ugoodtech.mdcc.core.domain.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface StationServiceReportService {

    JsonResponse getCompleteReport(Long reportId);

    JsonResponse getUnFinshedReport(Long reportId);

    JsonResponse getDeparmentPending(Pageable pageable, String province, String city, String brand, String category, String stationName, Long stationId, Long serviceStartTime, Long serviceEndTime,
                                     Long starTime, Long endTime, Integer serviceNum, String serviceType, Boolean type, String score,String stationNum,String department,String payService,
                                     String sentTime,String serviceTime,String userName,String customerStat,String customerType,String paintBrand,String productPosition,Integer status);

    JsonResponse editDepartmentHead(User user, Long reportId, String deparmentIds);

    JsonResponse sureDeparmentHead(User user, Long reportId, String deparmentIds, String note);

    JsonResponse saveDeparmentHead(User user, Long reportId, String deparmentIds);

    JsonResponse getSureDeparmentHead(Pageable pageable, Long stationId, Long serviceStartTime, Long serviceEndTime, Long starTime, Long endTime, Long userId,
                                      Integer serviceNum, Long answerId, Boolean type, String score, String reportType);

    JsonResponse headGetReport(User user, Pageable pageable, String province, String city, String brand, String category, String stationName, Long stationId, Long serviceStartTime, Long serviceEndTime,
                               Long starTime, Long endTime, Integer serviceNum, String serviceType, Boolean type, String score,String stationNum,String department,String payService,
                               String sentTime,String serviceTime,String userName,String customerStat,String customerType,String paintBrand,String productPosition);

    JsonResponse headManageReport(User user, Long reportId, String note, String type, Long departmentId, String departmentIds);

    JsonResponse updateHeadManageReport(User user, Long reportId, String note, String type, String oldType, Long departmentId, String departmentIds);

    JsonResponse headGetProcessedReport(User user, Pageable pageable, String province, String city, String brand, String category, String stationName, Long stationId, Long serviceStartTime, Long serviceEndTime,
                                        Long starTime, Long endTime, Integer serviceNum, String serviceType, Boolean type, String score,String stationNum,String department,String payService,
                                        String sentTime,String serviceTime,String userName,String customerStat,String customerType,String paintBrand,String productPosition,String index);

    JsonResponse getEditDepartmentReport(User user, String province, String city, String brand, String category, String stationName,
                                         String useraName, Pageable pageable);

    JsonResponse getTempReport(Long reportId);

}
